/** ***
加入 jattr jstyle jroot
bug: 对于数组，若是没有绑定元素，则无法使用$push等方法
     对于数组，直接对数组赋值，ui不会改变
jui checkbox 由于以上两点bug 很难完成
jui select 对绑定的选项进行$push 或其他操作，ui不变


暂不支持路由的嵌套
暂不支持动态添加元素的渲染 已通过init解决
暂不支持jrepeat 重复单个元素
jdom获取样式有待改进
jif jshow jattr jstyle 数组中不支持index
jimg 的想法 已通过js修改图片的src解决

2018
1-25 修复了一个for的bug 没有包裹each时，元素的孩子和文字顺序会混乱
2-1 新增了ondatachange；修复了 jif中attr的不能正确移除属性的bug
2-3 新增jdom
2-5 jrun jon 支持多个函数，支持js代码，jon支持绑定多个事件
2-6 jload 修复了子模版使用父模版元素的bug
2-6 可以越过作用域一级一级向上查找属性，不会直接报错
2-7 新增jhtml属性, text元素设置html值
2-7 新增$makeChange方法，手动触发某值改变的回调函数
2-8 发现并修复空值不会渲染的bug
2-9 修复多层循环 使用 $.$par.$index 的bug

修复bug：jetterjs 验证express 不会显示正确的错误提示
修复bug：jetterjs 验证decimal ->float

Jet新增 $jui()

18-3-20:
路由配置 默认与名称一样
新增 css.conf 文件 可以设置css变量和函数 设置路由模板的公共样式
Jet.route Jet.route.back Jet.route.forward
valid 可以设置 useJUI
JUI message 增加30ms延迟 增加hover属性
$remove 支持以元素为参数
18-3-21
新增jui page tab
18 3-22
修复一个ie上的hash模式时的页面不会正确加载的bug
3-23 新增了 $r 获取根元素数据，修改了get方法
JUI msg新增 hover参数 默认为true 鼠标移上时不会自动消失

18 3-27 完善了ajax $ajax $ajax.get $ajax.post
j-icon font-size 初始值为 inherit
修复了 for 的关于索引的 bug
for 的直接孩子 bind元素现在可以正确的在属性中使用 $ 来代替其所绑定的数据 ,对数组操作进行了完善

3-28 修复了jload和路由组件模式下 JUI绑定的bug 现在如果jui-bind的属性不在当前Jet元素的数据中，则会在子Jet元素中寻找，如果都没有则会忽略掉
子页面的Jet最好使用 ele:jdom 指定Jet绑定的html元素，这样可以很好地解决子页面与父页面和子页面与子页面之间的命名冲突的问题
 增加了Jet name属性，用于生成一个在Jet.comp 中的以 name属性命名的 Jet元素变量

3-30 jattr和jstyle添加 $r 的支持
3-31 新增Jet.valid.useOnInput
4-2 新增 Jet.prototype.$init 对动态添加的元素 初始化
  新增 Jet.prototype.$cookie 操作cookie
  新增 Jet.prototype.$storage 操作localStorage
  修复了 input类型元素 绑定的是数字 后可能会导致的类型紊乱的错误
  修复了 input类型元素输入焦点会到最后面的bug

4-4 修复了 数组元素的国际化 bug
国际化现在可以包含一个json或者数组，而不只是一个值类型

4-19 JUI 新增 j-drag
4-23 修复：数组的方法不会触发数组的监听回掉，现在使用数组的长度的绑定会被正确刷新
4-24 新增 define，export，$get,import，module，，as 关键字
4-24 新增css scoped 属性，默认值为true;
    新增 JUI.dialog.isOpen clear ; 新增JUI.confirm.isOpen clear
    数组removeByIndex
    新增 new Jet()的name 参数
5-14 完善js模块规范
5-15 修复css scoped的bug
 需要新增 index.html 文件中加载资源的介绍 目录的介绍 在路由设置tureBase=true的时候
5-16：修复了 JUI 组件关于disabled属性的bug
/     完成了ondatachange的嵌套，并修复了$regist 多层数组嵌套时的bug ,(a[0][0]时用出错)

5-24 修复存在多个 jload 元素，JUI加载不正常的bug， 修复 j-dialog 不同页面之间切换不会移除的 bug
    JUI.dialog.removeAll 不同组件之间切换时使用，路由切换已经写进源码
    修复了添加或刪除数组元素时 $index不能正确改变 的bug，修复了使用JUI时for元素添加新元素时不会被渲染
    新增 Jet 的 par 属性，用于指定父元素，父元素会有一个 $child 属性
5-25 修复了for元素中使用radio或checkbox时添加新元素是，group不会被正确绑定的bug
5-26 jui dialog 新增尺寸 xs s l xl full
   新增 jpar 属性，用于指定 jload元素中的Jet 元素的父Jet元素。（这是用于当一个jload可能会对应多个父元素时的情况）
   修复了 checkbox和radio checked的bug，
   新增 checkbox group的selectAll 方法，用于全选；
   新增 checkbox group的clear方法，用于清空所有选择
   新增 radio group的clear方法，用于清空选中
   新增 checkbox group 和 radio group的removeAll方法，用于删除所有checkbox|radio子元素
   新增 checkbox group 和 radio group的remove方法
5-27 新增 jui-type 属性，用于指定jui绑定数据的类型，可选值有 bool number string，默认值为string
5-28 **新增 if,show,style,attr中绑定的 $.$par(index) 方法，可用于获取父元素数据，index 默认值为1,若是参数小于0，会用1计算，超过父元素级数会返回最上层父元素，也就是jet元素
    bind元素不需要父元素，因为如果子元素中没有对应的属性，会自动向上查找父元素
    在执行语句中，可以使用 Jet元素的 $parData(index) 方法获取或设置父元素的数据
5-30 对于display none的元素 禁用了_validInput
6-6 修复了因为修改jload.init引入的bug:jload 子组件无法引用父组件的数据
6-20 ajax 新增header  新增支持数据为数组
 jui msg text 支持 数字类型
 增加_hasDisabled 属性 以修复 当数组为空时 其中的Jet元素可能会报错的bug
 修复了 当输入框类型为password时 启用了 onchange 事件的bug
 待增加：jui-bind 使用父元素或根元素数据**
6-24 j-select 组件支持 数据绑定 j-option，
 当j-option过多时，支持上下滚动显示
 修复了 j=‘’ 绑定数据且其数据处于上级作用域的元素，其子元素不会使用于其相同的作用域的bug
 （*重要）现在可以对绑定数据的数组 使用 = 号直接赋值 ，不必使用 $replace; 也对json进行了优化，现在都可以使用 = 直接赋值
 6-26
   修复数组插入数据 ，for中的input输入会错乱的bug
   修改了Jetterjs 的 insertArray(使用原生splice) removeByIndex(支持第二个参数选择删除个数)
   （*重要）修改了原生数组操作方法(push,pop,splice,shift,unshift,reverse,sort)，现在可以使用原生数组操作来操作Jet的绑定数组
   新增delay 和 interval 用于解决由于异步加载导致的依赖项未加载完成的情况，设置一个延迟或循环 获取依赖项
6-27 text 元素中func 可以使用opt参数
   dialog.reinitPos
   修改了 jet数据的 defineJson 的方法 现在json使用等于直接赋值可以触发绑定。（目前设定的是Jet数据中没有属性，不会被赋值到Jet数据中）
   JUI message 和 confirm 新增 html 属性
   （*重要）JUI date 新增 jui-date-time=true 支持选择24进制的时间
   （*重要）JUI date 新增 jui-date-detail=true hover可以显示农历和节日节气等信息
   JUI date 新增 jui-date-max 和 jui-date-min
6-30    JUI dialog noclose nodrag 属性
   Jet run现在会在渲染数据完成之后触发 ；jload jonload属性
7-3     修复了当input没有type属性时 绑定无效的bug; 修复了Date日期选择器当日期或月份是个位数时导致日期紊乱的bug
   jstyle等元素来使用函数 $r.func({{$.score}})，text元素可以使用立即执行函数或this.func来使用函数
 jui-date 添加选择今日按钮
 现在jload不一定非要设置jpar属性，会将其所在的页面的Jet元素作为其父元素
7-10 （*重要）将jcode融入了JUI ,新增了索引和点击某行高亮；jui-code-line 用于是否显示索引默认为true
 新增了jui-onload属性
7-5:路由新增use参数新增oninit 用于在路由化之后调用，一般可以用来加载模块

//---表示与开发者无关
10-30
 修复表达式中出现 小于大于号时会出错的bug
 增加JUI中button 的 icon 属性
 ---现在，就算没有声明Jet的name参数，也会为Jet对象默认指定一个name
10-31
 整理删除JUI中的冗余代码
11-1
 子组件添加name属性，用于指定 子组件中的 name参数

 
 * 11-3
 * (*重要) 新增 jet tool(attr style if show) 中支持 $index 和 $index() 获取 索引
 * 使用 $index() 来替换 $.$p().$index
 * (*重要) 新增父子组件通信 传值  三种方式
 *      :name='' 可以是父元素中的data或是一个js表达式
 *      ::name='' 同上 不同的是会将数据做一个深拷贝而不是直接引用
 *      @func='' 可以是父元素中的func或是一个js表达式
        当时js表达式时，需要使用 {} 包裹起来，否则会当成一个字符串处理
        在js表达式中 this指代父元素，有两个参数 $和opt ，$指代作用域内的数据，opt指代如下
 *      opt={
          data:指代作用域内的数据,
          ele:指代当前dom元素,
          jet:指代父Jet元素,
          root:指代根Jet元素
        }
        在子元素中使用 this.$props对象就可以获取到父元素给子元素传递的数据。
        也可以使用 属性J 绑定 $props 中的数据
        由于属性不支持大写，所以以 - 来代替大写，比如 user-info 会被Jet翻译成 userInfo
    _JT_replaceAll 支持数组传参
    新增 media 目录
    新增 Jet.router.url 属性
    新增资源管理 Jet.res.define   Jet.res.getSrc  @
    ---Jet.load.__loadStore
    ---在load.init 回调中 init router
    ---现在 Jet组件都会有严格的父子组件关系、对应的ele 和 name（如没有定义就按照Jet规则默认命名）
    ---只存在一个默认绑定HTML标签的根root组件
  11-4
  新增生命周期 beforeinitawait
  新增 Jet.router.activeRouter 重新激活active router link，用于一些后加载的组件中的router-link的激活
  新增 新增 Jet.prototype.module

  api jrouter&jout 新增jrouter-active说明

  11-6
  router onroute onrouted 新增一个bool参数，表示是初始化加载还是 页面无刷新的路由跳转
  route() 增加第二个参数 ，为路由跳转完成的回调函数
  11-7 jui 新增 progress，并且slider和progress都支持了颜色、大小，slider支持了disabled

  11-12
    Jet.router.setBase
    static 参数
    新增生命周期 beforeunmount onunmounted 目前仅对路由组件和其子组件有效
  11-13
    data中 新增立即执行函数
    static 参数 支持立即执行函数
    Jet.router.indexMap 属性，保存路由首页对应的html地址 无需开发者设置

jpath 是否使用jet的path机制，默认为true。如不使用，则默认使用以/src为根的绝对路径
  11-18
    (*重要)拆分 Jet，使用Jet.use() 按需加载
        系统模块--['render-time','router', 'css-config', 'res', 'valid', 'lang', 'module','tool','jui']
      Jet.use.all() 加载全部预设依赖，回调函数参数为加载时间
    (*重要) 可以使用Jet.use() 加载外部依赖
    (*重要) 重构项目结构
    新增控制台打印依赖加载时间和 组件渲染时间
  11-20
        jui-新增多种组件支持width属性、icon属性。

  11-26
    (*重要) 完成jet 脚手架工具 jet-js-cli
    (*重要) Jet.use.define*() 声明第三方库的模块和模块之间的依赖
        module 和 rely 两个参数
  11-27
    (*重要) 新增 babel 和 less的支持，并加入了官方库，只要是 引入了babel或less，就自动将项目中的所有js或css文件进行相应的处理
    新增 jbabel和jless 属性
    新增 模块 前缀 no-babel:
    use.all 方法 参数可以是 '-lib' 表示排除某个官方库
    Jet.canUse() ,检测某个模块是否可用
    改进scoped属性
  11-30
    修复一些有关scoped属性的bug
  12-6
    ondatachange 函数中的参数使用 json ,并新增 set方法和path属性。
    现在 参数有 key,value,index（这是一个记录索引的数组）,set（设置值）

  需完善 组件销毁的生命周期
  
  需将外围设施部署成 npm包
  颜色选择器BUG

  jex 状态管理
  jload 改变 src，以方便开发者自定义实现多级路由
*/